[QEMU-DM] Upgrade emulated UART to 16550A.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 5 Dec 2007 14:21:00 +0000 (14:21 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 5 Dec 2007 14:21:00 +0000 (14:21 +0000)
commit6941772894b1ffcf029a1a7d9a5b5f72630f6898
treec6290378d8f090704303b05baf2ec5725396cb5a
parent44852556da049246cc9bf2931cf4b7726e1de901
[QEMU-DM] Upgrade emulated UART to 16550A.

This patch adds 16550 emulation to qemu-dm. I still consider it a work
in progress, but from my testing, it consistently performs better than
the old code already, sometimes considerably so (on my laptop, dumping
out data over serial from a HVM DomU -> pty in Dom0 was up to 5.3
times faster than with the old 16450 code). I can consistenly reach
full 115200 baud speeds over physical serial lines when the virtual
device is backed by a phys port, which I never could with the old code.

There are still some things to be done. I want to add proper error
handling, so that overflow/framing & parity errors on the physical
port get detected and reported by the virtual port. Also, now that
FIFOs are in place, I believe performance could be improved
significantly by putting some code into the hypervisor so that reads &
writes from the FIFOs don't have to exit into qemu-dm at all. I'm also
reading up on the specs for newer uarts with deeper FIFOs.

Signed-off-by: Trolle Selander <trolle.selander@gmail.com>
tools/ioemu/hw/serial.c